package com.xac.common.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 时间格式化以及各种格式的转换
 * 
 * @author frank
 * 
 */
public class DateFormatUtil {

	/**
	 * 按给定的格式返回当前时间
	 * 
	 * @param pattern 给定的格式 如传入MM/dd yyyy，则会返回 如11/18 2011格式的时间字符串
	 * @return 格式化后的当前时间
	 */
	public static String getNowTime(String pattern) {
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		String date = sdf.format(new Date());
		return date;
	}

	/**
	 * 也许会删除此方法 最后联系时间
	 * 
	 * @param date
	 * @return
	 */
	public static String formatDate(Date date) {
		SimpleDateFormat fmt = new SimpleDateFormat("MM-dd HH:mm");
		return fmt.format(date);
	}

	/**
	 * 也许会删除此方法 把yyyy-MM-dd格式的时间转换成毫秒 朱远昕增加 2011-11-08
	 * 
	 * @param date 时间
	 * @return 相应的毫秒
	 */
	public static long formatToMillisecond(String date) {
		if (date == null || "".equals(date)) {
			return -30609820800000L;// 即1000-01-01年
		}
		try {
			return new SimpleDateFormat("yyyy-MM-dd").parse(date).getTime();
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return -30609820800000L;
	}

	/**
	 * 也许会删除此方法 把yyyy-MM-dd格式的时间转化成Calendar时间
	 * 
	 * @param date yyyy-MM-dd 格式时间
	 * @return 相应的Calendar
	 */
	public static Calendar formatToCalendar(String date) {
		Calendar ca = Calendar.getInstance();
		ca.setTimeInMillis(formatToMillisecond(date));
		return ca;
	}

}
